home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
program
/
swagd_f.zip
/
EGAVGA.SWG
/
0067_Setting Video Mode.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-11-02
|
2KB
|
53 lines
{
MARC BIR
>My second problem is the video memory. From my technical
>reference manual, it tells me that the address starts at segment A000H,
>offset 0000H. I've been Programming the VGA 320x200x256 mode quite alot,
>but in the EGA address, whenever I Write to video memory, all I see is
>black and white, like monochrome. if I will be happy if I get information
>about that. Another thing that actually question me is that when I'm
>using the BIOS block palette to create a fade in/out, it makes the screen
>flicker, which is quite disturbing. What Info I need is how the VGA port
JS>works on setting up the RGB palette. Thanks.
How do you init. the mode? Call int 10h With 13h? if so then using
A000:0000 is correct. As far as fading, use the following.
}
Type
PalType = Array [0..255, 0..2] of Byte;
Procedure SetPalette(Color, Count : Byte; Palette : PalType);
Var
Ct, Col : Byte;
begin
Port[$3C8] := Color; { First color to set, Change this to $3C7 to
read. And switch the Port=Pal at bottom }
For Ct := 1 to Count Do { Count is the total number of DACs to set }
For Col := 0 to 2 Do { Sets the Red, Green and Blue }
Port[$3C9] := Palette[Ct, Col];
end;
Procedure SetMode(Mode : Byte); Assembler;
Asm
Mov AH, 0
Mov AL, Mode
Int 10h
end;
{You can test your mode set With this }
Procedure TestScreen;
Var
X, Y : Integer;
begin
For X := 0 to 319 Do
For Y := 0 to 199 Do
Mem[$A000 : Y * 320 + X] := (X * Y) Mod 256;
end;
begin
SetMode($13);
TestScreen;
end.